package com.insigma.business.qrcode.pay.bff;

import cn.hutool.json.JSONObject;
import com.insigma.business.qrcode.common.annotation.ApiServiceType;
import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.pay.dto.MerchantOrderDTO;
import com.insigma.business.qrcode.pay.dto.request.MerchantOrderInsertRequest;
import com.insigma.business.qrcode.pay.dto.request.MerchantOrderSearchRequest;
import com.insigma.business.qrcode.pay.dto.request.MerchantOrderUpdateRequest;
import com.insigma.business.qrcode.soldier.request.BaseGetRequest;
import com.insigma.business.qrcode.merchant.dto.request.CareWelfareMerchantInfoSearchRequest;
import com.insigma.business.qrcode.welfare.dto.CareWelfareMerchantInfoDTO;
import com.insigma.business.qrcode.merchant.dto.request.CareWelfareMerchantInfoUpdateRequest;

import java.util.List;
import java.util.Map;

public interface OrderBFFProvider {
    @ApiServiceType(value = "order.getDetail", name = "订单详情", desc = "订单详情")
    BaseResponse<CareWelfareMerchantInfoDTO> getOrderDetail(final BaseGetRequest baseGetRequest);

    @ApiServiceType(value = "order.update", name = "订单详情修改", desc = "订单详情修改")
    BaseResponse<Integer> orderUpdate(final MerchantOrderUpdateRequest updateRequest);

    @ApiServiceType(value = "all.ss.merchant.order.pay", name = "保存订单", desc = "保存订单")
    BaseResponse<String> orderPay(final MerchantOrderInsertRequest insertRequest);

    @ApiServiceType(value = "all.ss.merchant.order.confirm", name = "确认订单", desc = "确认订单")
    BaseResponse<String> orderConfirm(final BaseGetRequest baseGetRequest);

    @ApiServiceType(value = "all.ss.merchant.order.search", name = "订单查询", desc = "订单查询")
    BasePagingResponse<List<MerchantOrderDTO>> orderSearch(final MerchantOrderSearchRequest searchRequest);


    @ApiServiceType(value = "all.ss.merchant.order.total", name = "订单汇总", desc = "订单汇总")
    BaseResponse<MerchantOrderDTO> orderTotal(final MerchantOrderSearchRequest searchRequest);


}
